package model

import (
	"manager/model/entity"
)

// FaultCreateRequest 创建现场数据
type FaultCreateRequest struct {
	UserId int64 `json:"user_id"`

	EbikeId int64 `json:"ebike_id"`

	EbikeName string `json:"ebike_name"`

	EbikeTypeId int64 `json:"ebike_type_id"`

	EbikeTypeName string `json:"ebike_type_name"`

	Phone string `json:"phone"`

	FaultId int64 `json:"fault_id"`

	FaultName string `json:"fault_name"`

	FaultDesc string `json:"fault_desc"`

	FaultEnum int64 `json:"fault_enum"`

	Level int `json:"level"`

	SnCode string `json:"sn_code"`

	UpdatedAt int64 `json:"updated_at"`
}

// FaultUpdateRequest 更新现场数据
type FaultUpdateRequest struct {
	Id int64 `json:"id"`

	UserId *int64 `json:"user_id"`

	EbikeId *int64 `json:"ebike_id"`

	EbikeName *string `json:"ebike_name"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	EbikeTypeName *string `json:"ebike_type_name"`

	Phone *string `json:"phone"`

	FaultId *int64 `json:"fault_id"`

	FaultName *string `json:"fault_name"`

	FaultDesc *string `json:"fault_desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	SnCode *string `json:"sn_code"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// FaultListRequest 列表现场数据
type FaultListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	UserId *int64 `json:"user_id"`

	EbikeId *int64 `json:"ebike_id"`

	EbikeName *string `json:"ebike_name"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	EbikeTypeName *string `json:"ebike_type_name"`

	Phone *string `json:"phone"`

	FaultId *int64 `json:"fault_id"`

	FaultName *string `json:"fault_name"`

	FaultDesc *string `json:"fault_desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	SnCode *string `json:"sn_code"`

	UpdatedAt *int64 `json:"updated_at"`

	TimeZone []int64 `json:"time_zone"`
}

// FaultListResponse 列表回包数据
type FaultListResponse struct {
	Total int          `json:"total"`
	List  []*FaultInfo `json:"list"`
}

// FaultInfoRequest 列表现场数据
type FaultInfoRequest struct {
	Id int64 `json:"id"`

	UserId *int64 `json:"user_id"`

	EbikeId *int64 `json:"ebike_id"`

	EbikeName *string `json:"ebike_name"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	EbikeTypeName *string `json:"ebike_type_name"`

	Phone *string `json:"phone"`

	FaultId *int64 `json:"fault_id"`

	FaultName *string `json:"fault_name"`

	FaultDesc *string `json:"fault_desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	SnCode *string `json:"sn_code"`

	UpdatedAt *int64 `json:"updated_at"`
}

// FaultInfo 详细数据
type FaultInfo struct {
	Id int64 `json:"id"`

	UserId int64 `json:"user_id"`

	EbikeId int64 `json:"ebike_id"`

	EbikeName string `json:"ebike_name"`

	EbikeTypeId int64 `json:"ebike_type_id"`

	EbikeTypeName string `json:"ebike_type_name"`

	Phone string `json:"phone"`

	FaultId int64 `json:"fault_id"`

	FaultName string `json:"fault_name"`

	FaultDesc string `json:"fault_desc"`

	FaultEnum int64 `json:"fault_enum"`

	Level int `json:"level"`

	SnCode string `json:"sn_code"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// FaultDeleteRequest 删除现场数据
type FaultDeleteRequest struct {
	Id int64 `json:"id"`
}

// FaultsEntityToDto entity数据转换
func FaultsEntityToDto(faults []*entity.Fault) []*FaultInfo {
	out := make([]*FaultInfo, 0, len(faults))
	for _, c := range faults {
		out = append(out, FaultEntityToDto(c))
	}
	return out
}

// FaultEntityToDto entity数据转换
func FaultEntityToDto(e *entity.Fault) *FaultInfo {
	return &FaultInfo{

		Id: e.Id,

		UserId: e.UserId,

		EbikeId: e.EbikeId,

		EbikeName: e.EbikeName,

		EbikeTypeId: e.EbikeTypeId,

		EbikeTypeName: e.EbikeTypeName,

		Phone: e.Phone,

		FaultId: e.FaultId,

		FaultName: e.FaultName,

		FaultDesc: e.FaultDesc,

		FaultEnum: e.FaultEnum,

		Level: e.Level,

		SnCode: e.SnCode,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
